<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller {

    public function _initialize(){
          if(!session('?admin')){
            $this->error('当前用户没有权限','Login/login');
            exit;
          }
        }

    public function index(){
    	echo "this is Admin model";
    }

    function userList(){
    	  $userModel=M('Users');
    	  $local_users=$userModel->order('id desc')->select();
    	  //这句话相当于：
    	  //select * from think_users order by id desc
    	  //$users 函数的是局部变量，在外面是不可见的
    	  $this->users=$local_users;
    	  //$this->assign();
    	  $this->display();
    	  //把当前对象所有全局变量传递到对应的视图中
    	  //可以使用户assign方法限制传递的全局变量
    }

    function bsuserList(){
          $User = M('Users'); // 实例化User对象
          $count = $User->count();// 查询满足要求的总记录数
          $Page = new \Think\Page($count,5);// 实例化分页类 传入总记录数和每页显示的记录数(5)
          $show = $Page->show();// 分页显示输出
          // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
          $list = $User->limit($Page->firstRow.','.$Page->listRows)->select();

          // $this->users=$list;
          // $this->page=$showw;
          $this->assign('users',$list);// 赋值数据集
          $this->assign('page',$show);// 赋值分页输出
          $this->display(); // 输出模板
         // var_dump($show);

          // $userModel=M('Users');
          // $local_users=$userModel->order('id desc')->select();
          //这句话相当于：
          //select * from think_users order by id desc
          //$users 函数的是局部变量，在外面是不可见的
          // $this->users=$local_users;
          //$this->assign();
          // $this->display();
          //把当前对象所有全局变量传递到对应的视图中
          //可以使用户assign方法限制传递的全局变量
    }

    function users(){
          $userModel=M('Users');
          $local_users=$userModel->order('id desc')->select();
          //这句话相当于：
          //select * from think_users order by id desc
          //$users 函数的是局部变量，在外面是不可见的
          $this->users=$local_users;
          //$this->assign();
          $this->display();
          //把当前对象所有全局变量传递到对应的视图中
          //可以使用户assign方法限制传递的全局变量
    }

    function del($id){
            //生产一个Users表对应的模型实例
            $usersModel=M('Users');//Users跟表对应的模型
            //调用模型的方法删除数据
            if($usersModel->delete($id)){
                //delete from think_users where id=$id
                //删除成功
                $this->success('删除成功');

            }else{
                //删除失败
                $this->error('删除失败');
            }
            
    }


    function setstar($id){
        //生成一个Users表对应的模型实例usersModel
        $usersModel=M('Users');
        $data['isstar']=1;
        if ($usersModel-> where("id=$id")->save($data)) {
            //update users set isstar=1 where is=$id;
            $this->success('修改成功！');
        }else{
            $this->error('修改失败！');
        }
        
    }

    function unstar($id){
        //生成一个Users表对应的模型实例usersModel
        $usersModel=M('Users');
        $usersModel->isstar=0;
        $usersModel->isfirst=0;
        $usersModel->id=$id;
        if ( $usersModel->save() ) {
            $this->success('取消明星作者成功！');
        }else{
            $this->error('取消明星作者失败！');
        }       
    }

    function setfirst($id){
        //生成一个Users表对应的模型实例usersModel
        $usersModel=M('Users');
        $usersModel->isstar=1;
        $usersModel->isfirst=1;
        $usersModel->id=$id;
        if ( $usersModel->save() ) {
            $this->success('设置首页推荐成功！');
        }else{
            $this->error('设置首页推失败！');
        }       
    }

    function unfirst($id){
        //生成一个Users表对应的模型实例usersModel
        $usersModel=M('Users');
        $usersModel->isfirst=0;
        $usersModel->id=$id;
        if ( $usersModel->save() ) {
            $this->success('取消首页推荐成功！');
        }else{
            $this->error('取消首页推失败！');
        }       
    }  

    function updateUserInfo($id){
        $usersModel=M('Users');
        $this->user=$usersModel->find($id);
        $this->display();
       //将查询到的信息user传递给模板updateUserInfo.html
    }

    function update(){
        //获取updateUserInfo界面提交的数据，修改数据
        // $data$_POST
        // $data=I(post.)
        // create()   利用$_POST数据创建一个对象

        $userModel=M('Users');
        $userModel->create();
        if ($_FILES['photo']['error']==0) {
          $photoinfo=$this->upload();
          //var_dump($photoinfo);
          $userModel->photo=$photoinfo['photo']['savename'];
        }

        if ($userModel->save()) {
          $this->success('修改用户成功！','users');
        }else{
          $this->error('修改用户失败！');
        }
    }

    //文件上传
    public function upload(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728 ;// 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Public/Uploads/photo/'; // 设置附件上传根目录
        //$upload->savePath = ''; // 设置附件上传（子）目录
        $upload->autoSub=false;
        // 上传文件
        $info = $upload->upload();
        if(!$info) {// 上传错误提示错误信息
        $this->error($upload->getError());
        }else{// 上传成功
        //$this->success('上传成功！');
          return $info;
        }
    }

    function img(){
    //图像处理
          $photoinfo=$this->upload();
          $filePath='./Public/Uploads/photo/';
          $oldFileName=$photoinfo['photo']['savename'];
          $oldFileFullName=$filePath."\\".$oldFileName;
          $newFileName='thumb_'.$oldFileName;
          $newFileFullName=$filePath."\\".$newFileName;

          $image=new \Think\Image();
              $image->open($oldFileFullName);
              $image->thumb(100,100)->save($newFileFullName);
              return $newFileName;
    }


    public function addUser(){
          //接收从add.html界面提交过来的信息
          //创建对象，保存到数据库中
          //注意：单独处理图像上传以及Photo字段的赋值
          //保存到数据库 add（）
          $userModel=D('Users');
          if($userModel->create()){
              if ($_FILES['photo']['error']==0){//判断文件是否成功
                $fileName=$this->img();

                 //$photoinfo=$this->upload();//将临时文件保存到指定位置
                  $userModel->photo=$fileName;//获取并设置文件名称     
              }

              if ($userModel->add()) {
                $this->success('添加用户成功！','users');/*添加成功后返回users页面*/
              }else{
                $this->error('添加用户失败！');
              }
          }else{
              $this->error($userModel->getError());
          }
    }


        
}